home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Nordlicht Spiele / Nordlicht Spiele 04-08 (19xx)(Nordlicht)(DE)(PD).zip / Nordlicht Spiele 04-08 (19xx)(Nordlicht)(DE)(PD).adf / hyperball.AMOS / hyperball.amosSourceCode < prev    next >
AMOS Source Code  |  1992-12-24  |  9KB  |  337 lines

  1. Rem *    Made by: Patrik Holmstr�m 1991   *  
  2. Rem *    Contact me: 5:e Bjurhovdag.37    *  
  3. Rem *                723 53 V�STER�S      *
  4. Rem *                SWEDEN               *
  5. Rem  
  6. Close Workbench : Close Editor : Volume 63
  7. Change Mouse 2
  8. Dim JX(16),JY(16)
  9. For I=1 To 15 : Read X,Y : JX(I)=X : JY(I)=Y : Next I
  10. Screen Open 0,640,256,16,0
  11. NYTT:
  12. SG=0
  13. Hide 
  14. Screen Open 1,320,256,32,0 : Screen Hide 1
  15. Unpack 6 To 0 : Screen Show 1
  16. Gosub FEL
  17. MEG:
  18. Sam Play 1,10,3000
  19. Sprite Off 
  20. Gosub FEL
  21. OMIGEN:
  22. Input "Do you wish instructions(n/y)?";Q$
  23. If Q$="y" Then Goto INST
  24. If Q$="Y" Then Goto INST
  25. If Q$="n" Then Goto STAR
  26. If Q$="N" Then Goto STAR
  27. Gosub FEL
  28. Goto OMIGEN
  29. STAR:
  30. Gosub FEL
  31. Input "Control goal(y/n)?";QA$
  32. If QA$="y" Then Goto PLAER
  33. If QA$="Y" Then QA$="y" : Goto PLAER
  34. If QA$="n" Then Goto PLAER
  35. If QA$="N" Then Goto PLAER
  36. Goto STAR
  37. PLAER:
  38. Gosub FEL
  39. Input "Centerline (y/n)?";QB$
  40. If QB$="y" Then Goto PLAER2
  41. If QB$="Y" Then QB$="y" : Goto PLAER2
  42. If QB$="n" Then Goto PLAER2
  43. If QB$="N" Then Goto PLAER2
  44. Goto PLAER
  45. PLAER2:
  46. Gosub FEL
  47. Input "Goal difference to win(1-10):";GD
  48. If GD<1 Then Goto PLAER2
  49. If GD>10 Then Goto PLAER2
  50. PLAER22:
  51. Gosub FEL
  52. Input "Players 1 or 2:";SPEL
  53. HEJ:
  54. Gosub FEL
  55. If SPEL=1 Then Input "RoboGamecar 0 to 5 (0=easiest):";SG : SG=SG+5 : Goto PATRIK
  56. If SPEL=2 Then Goto PATRIK
  57. Goto PLAER22
  58. PATRIK:
  59. If SG>10 Then Goto HEJ
  60. Gosub FEL
  61. Input "Player1's name:";MOTST1$
  62. Gosub FEL
  63. If SPEL=2 Then Input "Player2's name:";MOTST2$ Else MOTST2$="RoboGamecar"
  64. Gosub FEL
  65. If SG>10 Then Goto HEJ
  66. Input "Ball speed 1 to 3 (3=fastest):";B
  67. If B>3 Then Goto PATRIK
  68. If B<1 Then Goto PATRIK
  69. KICKI:
  70. Gosub FEL
  71. Input "Game speed O to 9 (0=fastest):";SH : SH=SH*100
  72. If SH>900 Then Goto KICKI
  73. GG:
  74. L=11 : Rem bana 
  75. P1=0 : P2=0 : Rem poomts 
  76. BANABAKS:
  77.    For R=1 To 14
  78.  Sprite Off R
  79.    Next R
  80. Screen Hide 0 : Screen Hide 1
  81. Unpack 7 To 0 : Screen Hide 
  82. Unpack 2 To 1
  83. Screen Show 1 : Sam Play 3,5,3400
  84. For VISA=8 To 256 Step 8
  85.    Screen Display 1,,,,VISA
  86.    Wait 2
  87. Next VISA : Screen Show 0
  88. Wait 100
  89. Show 
  90. NYBANA:
  91. Sprite 1,427,166,5
  92. Sprite Off 13
  93. Sprite Off 14
  94. Limit Mouse 296,169 To 296,170
  95. F1=0 : F2=0
  96. SX=287 : SY=103 : Rem spelares start 
  97. BX=291 : BY=166 : Rem Bollstart
  98. JX=287 : JY=220 : Rem 2spelarstart 
  99. Reserve Zone(1)
  100. Set Zone 1,150,57 To 419,271 : Rem markerar veggar
  101. X=0 : Y=0
  102. Amal Off 
  103. Amal 3,"A 0,(1,1)(2,1)(3,1)(4,1)"
  104. Amal 5,"A 0,(1,1)(2,1)(3,1)(4,1)"
  105. Amal 11,"A 0,(6,2)(7,2)(8,2);S: M 70,0,70;M -70,0,61;J S:"
  106. Amal 12,"A 0,(6,2)(7,2)(8,2);S: M -70,0,60;M 70,0,70;J S:"
  107. Make Mask 
  108. Sprite 3,287,103,1
  109. Sprite 5,287,220,1
  110. Sprite 12,322,257,6
  111. Sprite 11,251,62,6
  112. Screen Show 1
  113. Screen Show 0
  114. Sam Play 4,1,10000
  115.    Paper 2
  116.    Pen 6
  117.    Locate 2,0
  118.    Print P2;
  119.    Locate 2,31
  120.    Print P1;
  121. Wait 10
  122. For R=427 To 291 Step -1 : Sprite 1,R,, : Wait 1 : Next R
  123. Sam Play 4,11,4000
  124. If L=11 Then For R=53 To 58 : Ink R : Paint 160,130,1 : Next R : Ink 25 : Paint 160,130,1
  125. Wait 10
  126. Amal On 
  127. Rem ********************  Huvudloopen  
  128. HLOOP:
  129.    For SS=0 To SH : Next SS
  130.    Q$=Inkey$ : If Q$="q" Then End 
  131.    If Q$="p" Then Wait Key 
  132.    A=Joy(1) and 15
  133.    Add SX,JX(A) : Add SY,JY(A)
  134.    If QA$="y" and L=10 Then Sprite 12,572-SX,,
  135. VEGG:
  136.    Sprite 3,SX,SY,1
  137.    If Zone(X Sprite(3),Y Sprite(3)) Then Goto HIT : Rem kollar om veggkrock
  138.    Add SX,-JX(A) : Add SY,-JY(A) : Goto VEGG
  139. Rem ********************  datorspelare   
  140. HIT:
  141. If SPEL=1
  142.       If F2=1
  143.          If JY<200
  144.             If JY>95-(SG*2)
  145.                Sprite Off 13
  146.                F2=0
  147.                X=0
  148.                Y=0
  149.             End If 
  150.          End If 
  151.       End If 
  152.    Sprite 5,JX,JY,3
  153.    If BX=JX
  154.       Goto YLED
  155.    Else 
  156.       If BX>JX
  157.          Add JX,1
  158.       Else 
  159.          Add JX,-1
  160.       End If 
  161.    End If 
  162. YLED:
  163.    If BY=JY-3
  164.       Goto VEGG3
  165.    Else 
  166.       If BY>JY
  167.          If Rnd(10)<SG
  168.             Add JY,2
  169.          Else 
  170.             Add JY,1
  171.          End If 
  172.       Else 
  173.          Add JY,-2
  174.       End If 
  175.    End If 
  176. VEGG3:
  177.    If Sprite Col(1,5 To 5)
  178.       Y=-2 : Add JY,-1 : Add BY,-2
  179.       If JX>288
  180.          X=-2
  181.       Else 
  182.          X=2
  183.       End If 
  184.    End If 
  185.    Goto HIT2
  186. End If 
  187. Rem ************************  spelare2 
  188.    A=Joy(0) and 15
  189.    Add JX,JX(A) : Add JY,JY(A)
  190.    If QA$="y" and L=12 Then Sprite 11,572-JX,,
  191. VEGG2:
  192.    Sprite 5,JX,JY,3
  193.    If Zone(X Sprite(5),Y Sprite(5)) Then Goto HIT2 : Rem kollar om veggkrock
  194.    Add JX,-JX(A) : Add JY,-JY(A) : Goto VEGG2
  195. Rem ************************  Bollen 
  196. HIT2:
  197.    If QB$="y" Then If BY<167+B and BY>166-B Then X=-X
  198.    Add BX,X*B : Add BY,Y*B
  199. FAST:
  200.    Sprite 1,BX,BY,5
  201.    If BY<59 Then Y=-Y : BY=59 : F2=1 : Screen Display 1,,43,, : Amal Freeze 5 : Sam Play 4,14,4000 : Add BY,Y : Goto HLOOP : Rem Boll OM VEGGKROCK
  202.    If BY>279 Then Y=-Y : BY=279 : F1=1 : Screen Display 1,,43,, : Amal Freeze 3 : Sam Play 4,14,4000 : Add BY,Y : Goto HLOOP : Rem Boll OM VEGGKROCK
  203.    If BON=0 Then Add CC,1 : If CC=1000 Then Sprite 8,385,224,9 : Sam Play 2,2,4000 Else If CC=1100 Then Sprite 8,317,107,9 : CC=900 : Sam Play 2,2,4500
  204.    If Fire(0) and F2=1 Then X=0 : Amal On 3 : Sam Play 4,10,1000 : Y=0 : F2=0
  205.    If Fire(1) and F1=1 Then X=0 : Amal On 3 : Sam Play 4,10,1000 : Y=0 : F1=0
  206.    If BX<147 Then X=-X : BX=147 : Screen Display 1,,43,, : Sam Play 4,14,4000 : Add BX,X : Rem kollar om veggkrock
  207.    If BX>422 Then X=-X : BX=422 : Screen Display 1,,43,, : Sam Play 4,14,4000 : Add BX,X : Rem kollar om veggkrock
  208.    If Sprite Col(3,12 To 12) Then SX=287 : SY=103 : Sam Play 3,12,4000
  209.    If Sprite Col(5,11 To 11) Then JX=287 : JY=220 : Sam Play 3,12,3700
  210.    If Sprite Col(3,5 To 5) Then Gosub FIGHT
  211.    If Sprite Col(1,11 To 12) Then Goto GOAL
  212.    On BON Gosub BON1,BON2
  213.    If Sprite Col(8,3 To 5) Then Gosub BONUS
  214.    If Sprite Col(1,3 To 3) Then A=Joy(1) and 15 Else Goto SP2
  215.    Add BX,JX(A) : Add BY,JY(A) : X=JX(A) : Y=JY(A) : Sam Play 1,13,4000
  216. SP2:
  217.    If Sprite Col(1,5 To 5) Then A=Joy(0) and 15 Else Goto ETREF
  218.    Add BX,JX(A) : Add BY,JY(A) : X=JX(A) : Y=JY(A) : Sam Play 1,13,4000
  219. ETREF:
  220. Screen Display 1,128,42,,
  221. Goto HLOOP
  222. Rem ************************ Spelarkrock 
  223. FIGHT:
  224.    If BON<>0 Then BON=0
  225.    For R=1 To 5
  226.    A=Joy(0) and 15
  227.    Add JY,2 : Sam Play 1,13,4000
  228.    Sprite 5,JX,JY,3
  229.    If Zone(X Sprite(5),Y Sprite(5)) Then Goto FIT3 Else Add JY,-13
  230. FIT3:
  231.    A=Joy(1) and 15
  232.    Add SY,-2 : Sam Play 1,13,4000
  233.    Sprite 3,SX,SY,3
  234.    If Zone(X Sprite(3),Y Sprite(3)) Then Goto FIT2 Else Add SY,13
  235. FIT2:
  236.    Next R : Return 
  237. Rem *********************** Byte av bana 
  238. GOAL:
  239.    If Sprite Col(1,11 To 11) Then L=L+1
  240.    If Sprite Col(1,12 To 12) Then L=L-1
  241.    Sam Play 1,3,4000 : BON=0
  242.    If L=13 Then P1=P1+1 : Sam Play 2,1,4000 : JJ=1 : J=0 : LB=-1 : Goto MAAL
  243.    If L=9 Then P2=P2+1 : Sam Play 2,1,4000 : JJ=0 : J=1 : LB=1 : Goto MAAL
  244.    Sprite Off : Hide 
  245.    Gosub PERSIEN : Sam Play 1,3,1000
  246.    If L=12 Then Unpack 3 To 1
  247.    If L=11 Then Unpack 2 To 1
  248.    If L=10 Then Unpack 4 To 1
  249.    Gosub PERSIENEN : Show 
  250.    Screen 1
  251.    Locate 2,0
  252.    Print P2;
  253.    Locate 2,31
  254.    Print P1;
  255.    Goto NYBANA
  256. Rem ********************    Maal   
  257. MAAL:
  258.    Fade 3 : Sam Play 4,10,5000 : CC=0 : L=11 : Sprite Off : Hide 
  259.    Unpack 6 To 0 : Screen To Front 1
  260.       Gosub FEL
  261.       Locate 25,14
  262.       Print "Score  Player    Goal diff:";GD
  263.       Locate 25,16
  264.       Print P2 : Locate 32,16 : Print MOTST1$
  265.       Locate 25,18
  266.       Print P1 : Locate 32,18 : Print MOTST2$
  267.       Locate 25,20
  268.       Print "Press the red one...";
  269.       Gosub PERSIEN
  270.    If P2-P1=GD Then Goto FLUT
  271.    If P1-P2=GD Then Goto FLUT
  272.    FLESK:
  273.    If Fire(1) Then Sam Play 1,5,3500 : Goto FLESKE
  274.    Goto FLESK
  275.    FLESKE:
  276.    Unpack 2 To 1
  277.    Gosub PERSIENEN : Show 
  278.    Unpack 7 To 0 : Screen To Front 1
  279.    Screen 1
  280.    Locate 2,0
  281.    Print P2;
  282.    Locate 2,31
  283.    Print P1;
  284. GULPS:
  285.    Goto NYBANA
  286. FLUT:
  287.    Sam Play 4,11,3000
  288.    Wait 200
  289.    Print "GAME OVER."
  290.    Amal Off 
  291.    FLESKA:
  292.    If Fire(1) Then Goto FLESKEA
  293.    Goto FLESKA
  294.    FLESKEA:
  295.    Sprite Off 
  296.    Cls 1
  297.    Goto NYTT
  298. Rem ************************ Bonusgrej 
  299. BONUS:
  300.    If Sprite Col(8,3 To 3) Then BON=2 : Sprite Off 8 : CC=0 : Sam Play 3,10,6000
  301.    If Sprite Col(8,5 To 5) Then BON=1 : Sprite Off 8 : CC=0 : Sam Play 1,10,6000
  302.    Return 
  303. BON1:
  304.    A=Joy(0) and 15 : X=JX(A) : Y=JY(A) : Return 
  305. BON2:
  306.    A=Joy(1) and 15 : X=JX(A) : Y=JY(A) : Return 
  307. Rem ***************** Instructions 
  308. INST:
  309. Gosub FEL
  310. Locate 25,14
  311. Print "The game is in three areas:"
  312. Locate 25,16
  313. Print "DEFEND,CENTER and SCORE AREA"
  314. Locate 25,18
  315. Print "You have to win with 1 to 10 points."
  316. Locate 25,20
  317. Print "Key(Q) quit game. Key(P) pauses."
  318. Locate 25,22
  319. Print "Press a key..." : Wait Key : Gosub FEL : Goto STAR
  320. FEL:
  321. Paper 10 : Pen 14 : Ink 10
  322. Bar 150,110 To 480,190 : Locate 25,16 : Return 
  323. Data 0,-2,0,2,0,0,-2,0,-2,-2,-2,2
  324. Data 0,0,2,0,2,-2,2,2,0,0,0,0,0,0,0,0,0,0,0
  325. PERSIENEN:
  326. For VISA=8 To 256 Step 8
  327.    Screen Display 1,,,,VISA
  328.    Wait 2
  329. Next VISA
  330. Return 
  331. PERSIEN:
  332.       For XX=1 To 6 : Sam Play 1,5,4000 : Next XX
  333. For VISA=249 To 1 Step -8
  334.    Screen Display 1,,,,VISA
  335.    Wait 2
  336. Next VISA
  337. Wait 60 : Return